package h0803;

import java.util.Arrays;
import java.util.Scanner;

/**
  * @description 最大时间排列
  * @author 不知名帅哥
  * @date 2024/8/3 9:45
  * @version 1.0
*/
public class MaxTimeCombinations {
    private static String maxTime="invalid";
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s = sc.nextLine();
        int[] array = Arrays.stream(s.substring(1, s.length() - 1).split(",")).mapToInt(Integer::parseInt).toArray();
        //时间排列 24:60:60;
        //hour<
        //求全排列并判断是否合法
        permute(array,0);
        System.out.println(maxTime);
    }

    //递归
    private static void permute(int[] array, int k) {
        //栈中的元素已经到达数组长度，开始评价是否合法
        if (k== array.length){
            evaluateTime(array);
        }
        //TODO 这里是i=k 不然会出现数组越界
        for (int i = k; i < array.length; i++) {
            swap(array,i,k);
            permute(array,k+1);
            swap(array,k,i); //交换回来到原始状态
        }
    }

    private static void evaluateTime(int[] array) {
        int hh=array[0]*10+array[1];
        int mm=array[2]*10+array[3];
        int ss=array[4]*10+array[5];
        if (hh<24&&mm<60&&ss<60){
            String temp=hh+":"+mm+":"+ss;
            if (maxTime.equals("invalid")||maxTime.compareTo(temp)<0){
                maxTime=temp;
            }
        }
    }

    //交换
    private static void swap(int[] array, int i, int k) {
        int temp=array[k];
        array[k]=array[i];
        array[i]=temp;
    }
}
